package com.itcm.purchase.common.utils;

import java.math.BigDecimal;

/**
 * 描述:
 * doble类型计算工具
 *
 * @outhor cm_fighting
 * @create 2020-07-30 10:36 上午
 */
public class DoubleCalcUtil {

    public static Double add(Double v1, Double v2) {
        BigDecimal b1 = new BigDecimal(v1.toString());
        BigDecimal b2 = new BigDecimal(v2.toString());
        return b1.add(b2).doubleValue();
    }
    //两个Double数相减


    public static Double sub(Double v1, Double v2) {

        BigDecimal b1 = new BigDecimal(v1.toString());

        BigDecimal b2 = new BigDecimal(v2.toString());

        return b1.subtract(b2).doubleValue();

    }


// 两个Double数相乘


    public static Double mul(Double v1, Double v2) {

        BigDecimal b1 = new BigDecimal(v1.toString());

        BigDecimal b2 = new BigDecimal(v2.toString());

        return b1.multiply(b2).doubleValue();

    }


//    //两个Double数相除
//    public static Double div(Double v1, Double v2) {
//
//        BigDecimal b1 = new BigDecimal(v1.toString());
//
//        BigDecimal b2 = new BigDecimal(v2.toString());
//
//        return b1.divide(b2, BIDEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//    }


    //两个Double数相除，并保留scale位小数


    public static Double div(Double v1, Double v2, int scale) {

        if (scale < 0) {

            throw new IllegalArgumentException("The scale must be a positive integer or zero");
        }

        BigDecimal b1 = new BigDecimal(v1.toString());

        BigDecimal b2 = new BigDecimal(v2.toString());

        return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

    }

//    //进行四舍五入
//    BigDecimal b1 = new BigDecimal(d);
//    BigDecimal b2 = new BigDecimal(1);
//    // 任何一个数字除以1都是原数字
//    // ROUND_HALF_UP是BigDecimal的一个常量，表示进行四舍五入的操作
//        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();

}
